<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 从根目录下访问vue.js -->
    <script type="text/javascript" src="/js/vue.js"></script>
    <script type="text/javascript">
        Vue.config.productionTip = false  //阻止 vue 在启动时生成生产提示。
    </script>
</head>

<!-- 
    父级组件 可以像处理 native DOM 事件一样通过 v-on 监听子组件实例的任意事件
    子组件 可以通过调用内建的 【$emit】 方法并传入事件名称来触发一个事件
 -->

<body>
    <div id="app">
        <div :style="{ fontSize: postFontSize + 'em' }">
            <!-- 这里是父组件 -->
            <blog-post v-on:enlarge-text="postFontSize +=0.1" v-for="post in posts" :key="post.id" :post="post">
            </blog-post>
        </div>
    </div>
</body>

</html>



<script type="text/javascript">

    Vue.component('blog-post', {
        props: ['post'],
        //知识点：可以用漂号来换行。（用单引号换行会报错。）
        // 这里是子组件
        template: `
        <div>
            <h3>{{post.title}}</h3>
            <button v-on:click="$emit('enlarge-text')">点击放大</button>
            <div>{{post.content}}</div>
            <div>{{post.published_at}}</div>
            <div>{{post.time}}</div>
        </div>
        `
    })

    new Vue({
        el: "#app",
        data: {
            posts: [
                { id: 1, title: "我的vue之旅", content: "内容1", published_at: "明哥出版社", time: "2022.11.17" },
                { id: 2, title: "我的vue之旅2", content: "内容2", published_at: "明哥出版社" },
            ],
            postFontSize: 1
        }
    })
</script>